package cn.tedu.scalacollection

/**
 * @author Amos
 * @date 2022/5/17
 */

object CollectionSimpleFunctionTest {
  def main(args: Array[String]): Unit = {
    /*
    （1）求和
    （2）求乘积
    （3）最大值
    （4）最小值
    （5）排序
     */
    // 1. 求和
    val list = List(1, 2, 5, 3, 4)
    println(list.sum)

    // 2. 求乘积
    println(list.product)

    // 3. 最大值
    println(list.max)

    val list2 = List(("d", 5), ("c", 2), ("a", 7), ("f", 3), ("b", 9))
    println(list2.max)
    println(list2.maxBy((x: (String, Int)) => {x._2}))
    // 简化写法
    println(list2.maxBy(x => x._2))
    // 最简化写法 _表示任意一个元素，参数只出现一次的情况下使用
    println(list2.maxBy(_._2))

    // 4. 最小值
    println("^" * 50)
    println(list2.minBy(x => x._2))
    println(list2.minBy(_._2))

    // 5. 排序
    println(list.sorted)
    println("降序" + list.sorted(Ordering[Int].reverse))

    println(list2.sortBy(_._2))
    // 降序
    println(list2.sortBy(_._2)(Ordering[Int].reverse))

    println(list2.sortWith((x,y)=>{x._2<y._2}))
    println(list2.sortWith(_._2<_._2))





  }

}
